package com.example.accountbook;

import android.graphics.Color;
import android.media.audiofx.AudioEffect;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.fragment.app.Fragment;

import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.data.PieEntry;
import com.github.mikephil.charting.formatter.PercentFormatter;

import java.util.ArrayList;

public class MainChartFragment extends Fragment {//图表碎片

    private PieChart chartAccount;//声明一个饼状图对象

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.main_chart,container,false);//为碎片加载布局，传入布局文件id，父类容器对象以及是否指定父类容器（此处父类容器存在，用true将会多创建一个）

        chartAccount = view.findViewById(R.id.chart_account);//获取图表控件
        chartAccount.setDrawHoleEnabled(false);//设置为实心


        Description description = new Description();//创建描述对象
        description.setText("消费分类统计图");//设置描述文字
        chartAccount.setDescription(description);//设置右下方文本标签内容

        ArrayList<PieEntry> entries = new ArrayList<>();//数据列表
        entries.add(new PieEntry(40.0f,"用餐"));//（数据，分类名）
        entries.add(new PieEntry(27.0f,"服装"));
        entries.add(new PieEntry(10.0f,"交通"));
        entries.add(new PieEntry(23.0f,"娱乐"));

        PieDataSet dataSet = new PieDataSet(entries,"");//构筑PieDataSet
        dataSet.setValueTextSize(18f);//设置字体大小

        ArrayList<Integer> colors = new ArrayList<>();//定义颜色列表
        colors.add(Color.rgb(205,205,205));
        colors.add(Color.rgb(114,188,223));
        colors.add(Color.rgb(255,123,124));
        colors.add(Color.rgb(57,135,200));

        dataSet.setColors(colors);//为PieDataSet设置颜色

        PieData pieData = new PieData(dataSet);//构建PieData
        pieData.setValueFormatter(new PercentFormatter());//按百分比显示，默认为直接显示数值

        chartAccount.setData(pieData);//为图表添加PieData
        chartAccount.invalidate();//刷新

        return view;//返回设置好的碎片
    }
}
